/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Operacion;

/**
 *
 * @author Rodimiro
 */
public class Pila implements iPila{
    
    int operando1;
    int operando2;
    //int operando3;
    int residuo;
    String operador0;
    String operador1 = "+";
    String operador2 = "*";
    String operador3 = "/";
    String operador4 = "-";
    boolean prueba = false;
    
    public void Pila(/*int operando1, int operando2*/){
    
        //this.operando1 = operando1;
        //this.operando2 = operando2;
}
    
    //public void setOperando1(int operando1){
    //    this.operando1 = operando1;
    //}
    
    //public void setOperando2(int operando2){
    //    this.operando2 = operando2;
    //}
    
    
   
    //public int getOperando1(){
    //    return operando1;
    //}
    
    //public int getOperando2(){
    //    return operando2;
    //}
    
    @Override
    public void push(Object o){
        Object [] mixta = new Object [3];
       
        //comparacion y validacion de cuando trata de un operador de suma
        if (operador1.equals(o)){
           // operando3 = operando1 + operando2;    
            System.out.println("El elemento trata de un operador de suma");
        }
        
        //comparacion con objecto y validacion cuando trata de operador de multiplicacion
        if (operador2.equals(o)){
            //operando3 = operando1 * operando2;
            System.out.println("el elemento trata de un operador de multiplicacion");
        }
            
        if (operador3.equals(o)){
            //operando3 = operando1/operando2;
            //residuo = operando1%operando2;
            System.out.println("El elemento trata de un operador de division");
        }
            
        if (operador4.equals(o)){
            //operando3 = operando1 - operando2;
            System.out.println("El elemento trata de un operador de resta");
        }
            
        if (o.equals(operando1) || o.equals(operando2)){
            System.out.println("el elemento trata de un numero");
        }
        
        for (int i=0; i==3; i++){
            mixta[i] = o;
            System.out.println("Los elementos estan dentro de la pila");
            
            if (mixta[1] == operando1 || mixta[1] == operando2){
                System.out.println("Correcto, primero va uno de los dos operandos");
            
               if (mixta[2] == operando1 || mixta[2] == operando2){
                System.out.println("Correcto, de segundo va otro operando");
               
                  
                  if (mixta[3] == operador1 || mixta[3] == operador2 || mixta[3] == operador3 || mixta[3] == operador4){
                    System.out.println("COrrecto, el operador va en tercer lugar)");
                  }
                  else{
                    System.out.println("En tercer lugar tendra que ir el operador");
                    System.exit(0);
                  }
               
               }
               else{
                System.out.println("EN segundo lugar tiene que ir otro operando");
                System.exit(0);
               }
            
            }
            else{ 
                System.out.println("Primero tiene que ir un operando");
                System.exit(0);
            }
            
        }
        //mixta[1]=operando1;
        //mixta[2]=operando2;
        //mixta[3]=operador;
    }
    
    @Override
    public Object pop(){
        Object [] mixta2 = new Object [3];
        mixta2[1] = operando1;
        mixta2[2] = operando2;
        mixta2[3] = operador0;
        for (int j=3; j==0; j--){
            Object o = mixta2[j];
            System.out.println("El elemento" + o + "ya se encuentra afuera");
            return o;
        }
        return "El elemento ya fue devuelto";
    }

    @Override
    public boolean hasItems(){
        Object [] mixta3 = new Object [3];
        for (int h=0; h==3; h++){
            if (mixta3[3]==null || mixta3[2]==null || mixta3[1]==null){
                prueba = false;
                System.out.print("no hay nada, se debe de ingresar primero los dos operandos y luego el operador");
            }
            
            if (mixta3[3] == null && mixta3[2]!=null && mixta3[1]!=null){
                prueba = false; 
                System.out.println("Hace falta el operador");
            }
                
            if (mixta3[3] == null && mixta3[2] == null && mixta3[1] != null){
                prueba = false;
                System.out.println("Solo se tiene un operando, hace falta otro operando y el operador");
            }
                
           if (mixta3[3] != null && mixta3[2] == null && mixta3[1] != null){
                prueba = false;
                System.out.println("Hace falta un operando");
            }
           
           if (mixta3[3]  == null && mixta3[2] != null && mixta3[1] == null){
               prueba = false;
               System.out.println("Solo se tiene un operando, hace falta el otro operando y el operador");
           }
           
           if (mixta3[3] != null && mixta3[2] != null && mixta3[1] == null){
               prueba = false;
               System.out.println("hace falta un operando");
           }
           
           if (mixta3[3] != null && mixta3[2] == null && mixta3[1] == null){
               prueba = false;
               System.out.println("Solo se tiene el operador, hacen falta dos operandos");
           }
           
           if (mixta3[3] != null && mixta3[2] != null && mixta3[1] != null){
               prueba = true;
               System.out.println("Se han colocado todos los elementos correctamente");
           }
           
           return prueba;
            }
        return prueba;
        }
    }

